type RemoveIndexSignature<T> = {
  [P in keyof T as number extends P
    ? never
    : string extends P
    ? never
    : symbol extends P
    ? never
    : P]: T[P];
};

type Foo1 = {
  [key: string]: any;
  foo(): void;
};

type S111 = RemoveIndexSignature<Foo1>;
